'''
Created on 05/06/2014

@author: Vitor e Monique
'''
from numpy.random import random

'''
Funçao que realiza um shuffle nas listas, mantendo a integridade dos dados

listaEntrada = lista(que vai ser embaralhada) de listas que contém os dados
yDesejado = valores que devem ter consistencia correta

Ex.:     listaEntrada[I] possui yDesejado[I],
a função retornará um I = A, onde i é igual ou não a A, portanto,
         listaEntrada[A] continuirá tendo yDesejado[A]
'''
def embaralhaListas(listaEntrada, yDesejado):
    listaEntrada.reverse()
    yDesejado.reverse()
    
    for i in range(len(yDesejado)):
        randomInt = int((random()*100000)%len(yDesejado))
        temp = listaEntrada[i]
        temp2 = yDesejado[i]
        
        listaEntrada[i] = listaEntrada[randomInt]
        yDesejado[i] = yDesejado[randomInt]
        
        listaEntrada[randomInt] = temp
        yDesejado[randomInt] = temp2
        
    return listaEntrada, yDesejado